Oracle建表并指定主键自增 | 您所在的位置:网站首页 › oracle sql建表语句 › Oracle建表并指定主键自增 |
Oracle不允许在建表时直接指定某个字段自增,需要通过建立序列 所以想要为某个字段指定自增,需要1.建表;2.建立序列;3.建立触发器 一:建表语句 Oracle数据库建表语句 ORACLE中的关键字这里均用大写表示,中括号表示可选填或不填 CREATE TABLE 表名 ( 字段名1 字段类型 【NULL | NOTNULL 】【PRIMARY KEY①】, 字段名2 字段类型 【NULL | NOTNULL 】② ); ①:oracle可以通过在末尾写PRIMARY KEY(列名)的方式指定某一个列为主键。 ②:oracle常用字段类型number,表示数字,可以存放整数或者小数, number(N)表示存放N位的整数,number(N,M)表示存放长度为N的小数,精确到M位,含小数点 varchar/varchar2,二者区别读者自己百度,这里不做详解。 date 日期类型,timestamp 时间戳类型 注意,oracle中没有int和integer类型。 示例语句如下:create table student ( s_id number(11) not null primary key, name varchar(20) not null, age number(6) not null, record_data date ); 为字段添加注释 comment on column student.s_id is '学生表ID'; comment on column student.name is '学生名称'; comment on column student.age is '学生年龄'; comment on column student.record_data is '记录时间'; 二、建立自增序列 CREATE SEQUENCE 序列名 -- 建议使用表名+字段名+seq后缀 INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区 三、建立触发器 CREATE TRIGGER 触发器名 BEFORE INSERT 表名 FOR EACH ROW WHEN (NEW.主键名 IS NULL) BEGIN SELECT 序列名.NEXTVAL INTO:NEW.主键名 FROM DUAL; END;
|
CopyRight 2018-2019 实验室设备网 版权所有 |